package com.youlai.boot.factory.model.vo;

import com.youlai.boot.factory.model.entity.StyleProcess;
import com.youlai.boot.factory.model.entity.WorkReportPackage;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Getter
@Setter
@Schema( description = "报工单详情对象")
public class WorkReportDetailVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "主键ID")
    private Long id;
    @Schema(description = "款ID")
    private Long styleId;
    @Schema(description = "报工人ID")
    private Long workerId;
    @Schema(description = "裁床单ID")
    private Long cuttingBedId;
    @Schema(description = "选择的工序IDS（JSON数组格式存储）")
    private String processIds;
    @Schema(description = "报工工资")
    private BigDecimal reportSalary;
    @Schema(description = "报工总数量")
    private Integer totalQuantity;
    @Schema(description = "报工时间")
    private LocalDateTime reportDate;
    @Schema(description = "状态：1-正常 0-删除")
    private Integer status;
    @Schema(description = "创建人")
    private String createBy;
    @Schema(description = "创建时间")
    private LocalDateTime createTime;
    @Schema(description = "更新人")
    private String updateBy;
    @Schema(description = "更新时间")
    private LocalDateTime updateTime;
    @Schema(description = "款号")
    private String styleCode;
    @Schema(description = "款名称")
    private String styleName;
    @Schema(description = "款图片")
    private String imageUrl;
    @Schema(description = "工序名称")
    private String processNames;
    @Schema(description = "报工类型")
    private String reportType;
    
    @Schema(description = "审核状态 0-待审核 1-审核通过 2-审核拒绝")
    private String auditStatus;
    
    @Schema(description = "驳回原因")
    private String rejectReason;
    
    @Schema(description = "报工人姓名")
    private String workerName;
    
    @Schema(description = "报工人昵称")
    private String workerNickname;
    
    //工序列表
    @Schema(description = "工序列表")
    private List<StyleProcess> styleProcessList;
    
    //分包列表
    @Schema(description = "分包列表")
    private List<WorkReportPackage> workReportPackageList;
    
    //工序明细列表（包含每个工序的分包）
    @Schema(description = "工序明细列表")
    private List<WorkOrderProcessDetailVO> workOrderProcessDetailList;
}
